#include "ros/ros.h"
#include "std_msgs/String.h"
#include <sstream>

// 1. 包含ros.h 以及 标准消息库

int main(int argc, char* argv[])
{
    setlocale(LC_ALL, "");
    // 2. 初始化节点
    ros::init(argc, argv, "talker");
    // 3. 实例化ROS句柄
    ros::NodeHandle nh;
    // 4. 创建发布者对象
    // 第一个参数为 发布话题，第二个参数是 发布队列的长度
    ros::Publisher pub = nh.advertise<std_msgs::String>("chatter", 10);
    // 5. 设置发布消息的速率
    ros::Rate rate(1);
    // 6. 发布消息
    std_msgs::String str;
    int count = 0;
    // 等待发布注册
    ros::Duration(3).sleep();
    // 节点正常就继续循环
    while(ros::ok())
    {
        std::stringstream ss;
        ss << "hello 白晨 --> " << count;
        str.data = ss.str();

        pub.publish(str);
        ROS_INFO("本次传递的信息为：%s", ss.str().c_str());

        rate.sleep();
        count++;

        // 现在无意义，官方建议
        ros::spinOnce();
    }
    return 0;
}